/**
 * Copyright (c) 2013-Now http://jeesite.com All rights reserved.
 */
package com.jeesite.modules.storage.dao;

import com.jeesite.common.dao.CrudDao;
import com.jeesite.common.mybatis.annotation.MyBatisDao;
import com.jeesite.modules.storage.entity.Trade;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * 交易DAO接口
 */
@MyBatisDao
public interface TradeDao extends CrudDao<Trade> {

    /**
     * 查找会员交易列表
     * @param memberId 会员Id
     * @param monthDate 月份
     * @param offset 开端
     * @param size 每页数量
     * @return 会员交易列表
     */
    List<Map> findListByMemberId(@Param("memberId") String memberId,@Param("monthDate") String monthDate, @Param("offset") Integer offset, @Param("size") Integer size);

    /**
     * 查找会员交易汇总
     * @param memberId 会员Id
     * @param monthDate 月份
     * @return 会员交易汇总
     */
    Double findStatisticsByMemberId(@Param("memberId") String memberId,@Param("monthDate") String monthDate);

    /**
     * 查找交易列表【管理端】
     * @param name 名称
     * @param contact 联系人
     * @param phone 手机号
     * @param status 状态
     * @param offset 开端
     * @param size 每页数量
     * @return 交易列表
     */
    List<Map> findListForManage(@Param("name") String name,@Param("contact") String contact,@Param("phone") String phone,@Param("status") String status,@Param("offset") Integer offset, @Param("size") Integer size);

    /**
     * 查找交易数量【管理端】
     * @param name 名称
     * @param contact 联系人
     * @param phone 手机号
     * @param status 状态
     * @return 交易数量
     */
    Integer findListCountForManage(@Param("name") String name,@Param("contact") String contact,@Param("phone") String phone,@Param("status") String status);
}
